ContextCapture 사용자 가이드

ID별 참조

3MXB 파일에는 모두 함께 매치해야 하는 다양한 리소스가 포함되어 있습니다. 앞서 언급한 대로 리소스 ID는 노드와 리소스를 함께 연결하는 데 사용됩니다.

첫 번째 일치는 노드와 형상 간의 대응입니다. 노드 데이터에는 노드에 속하는 모든 형상 리소스의 ID를 열거하는 리소스 배열이 포함되어 있습니다. 헤더의 리소스 배열은 파일에 있는 하나 이상의 노드에 필요한 모든 리소스를 나열합니다. 노드의 리소스 ID를 헤더 리소스 ID와 매치시켜서 노드의 형상을 재건할 수 있습니다.

아래 이미지에서 Node 0에는 Resource 0 및 Resource 1 형상이 있습니다. Resource 0은 형상 파일 유형이고, Resource 1은 형상 버퍼 유형이고, 매쉬는 Buffer 0 안에 압축되어 있습니다. Node 1은 Buffer 1에 있는 Resource 2 형상에 의해 정의됩니다. 헤더에서 리소스의 출현 순서는 버퍼에 대해 유지되므로 Resource 2에 대한 Buffer 1의 귀속 여부는 자동으로 결정됩니다.

3MXB의 리소스 귀속. 녹색은 바이너리 데이터를 나타내고 파란색은 문자열 데이터를 나타냅니다.

형상은 단일 노드에 속하지만 노드는 0개 이상의 형상 매쉬를 보유할 수 있습니다. 노드가 둘 이상의 형상을 갖는 이유는 두 가지입니다. 첫째, 단일 노드가 텍스쳐 처리된 데이터와 텍스쳐 처리되지 않은 데이터를 보유하거나 여러 이미지로 텍스쳐 처리된 데이터를 보유할 수 있습니다. 이 경우 형상을 여러 버퍼로 구분하는 것이 좋으며, 각 버퍼는 단일 텍스쳐에 해당합니다. 둘째, 특정 시스템에서는 최대 MAX_USHORT 길이의 형상 버퍼를 적용합니다. 예를 들어, WebGL 뷰어에 대해 생성되는 형상은 MAX_USHORT(65,535)보다 크지 않은 버퍼로 분할됩니다. 이 경우 대상 뷰어에 맞게 조정될 수 있습니다.

두 번째 일치는 형상 매쉬와 해당 텍스쳐 간의 대응입니다. 리소스 ID는 매치에 다시 사용됩니다. 형상 매쉬는 텍스쳐를 하나만 갖거나 전혀 포함하지 않을 수 있습니다. 텍스쳐가 필요한 경우 형상 설명에 "texture" 태그가 있습니다. 표시된 텍스쳐 ID는 헤더의 리소스 컬렉션에 나열된 텍스쳐 리소스 중 하나의 ID여야 합니다.

다른 노드와 여러 형상에서 텍스쳐를 사용할 수 있습니다. 위의 예에서는 Resource 0과 Resource 2가 Resource p의 텍스쳐를 공유합니다.

전체 헤더 예제(JSON 형식):

{ 
   "version":1,
   "nodes":[ 
      { 
         "id":"node0",
         "bbMin":[28.7803, -12.6859, 17.3977],
         "bbMax":[30.7065, -2.68368, 28.2069],
         "maxScreenDiameter":118.819,
         "children": [ "Tile_p000_p000_p001_L20_00.3mxb"],
         "resources":[ "geometry0"]
      }
   ],
   "resources":[ 
      { 
         "type":"textureBuffer",
         "format":"jpg",
         "id":"texture0",
         "size":1665
      },
      { 
         "type":"geometryBuffer",
         "format":"ctm",
         "id":"geometry0",
         "texture":"texture0",
         "bbMin":[28.7803, -12.6859, 17.3977],
         "bbMax":[30.7065, -2.68368, 28.2069],
         "size":1233
      }
   ]
}